package niuke.week3;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;

/**
 先给出可整合数组的定义：
 如果一个数组在排序之后，每相邻两个数的差的绝对值都为1，
 或者该数组长度为1，则该数组为可整合数组。

 例如，[5, 3, 4, 6, 2]排序后为[2, 3, 4, 5, 6]，符合每相邻两个数差的绝对值都为1，所以这个数组为可整合数组

 给定一个数组arr, 请返回其中最大可整合子数组的长度。
 例如，[5, 5, 3, 2, 6, 4, 3]的最大可整合子数组为[5, 3, 2, 6, 4]，所以请返回5

 max-min = len-1  且 不含有重复值
 */
public class MaxLengthOfIntegSubArray {
    public static void main(String args[])  throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine().trim());//第一行整数
        String[] words = br.readLine().trim().split(" ");

        int[] nums = new int[n];
        for(int i=0; i<n; i++){
            nums[i] = Integer.parseInt(words[i]);
        }
        int len = 0;
        HashSet<Integer> set = new HashSet<>();
        //逐个获取子数组
        for(int i=0; i<n; i++){
            set.clear();
            //保存该子数组中的最大最小值
            int min = Integer.MAX_VALUE;
            int max = Integer.MIN_VALUE;
            for(int j=i; j<n; j++){
                if(set.contains(nums[j]))//是否有重复值
                    break;
                set.add(nums[j]);
                min = Math.min(min, nums[j]);
                max = Math.max(max, nums[j]);
                if((max-min)==j-i){
                    //因为求的是最长的可整合数组，所以，要将len去最大值
                    len = Math.max( j-i+1, len );
                }
            }
        }
        System.out.print(len);
    }
}